package object;
/**  object类的演示 */

public class ObjectDemo {
    public static void main(String[] args) {

        /*

        调用Object类中的equals()，内部还是在使用==比较地址，没有参考意义
        若想比较对象对象的书香是否相同，我们认为Object类中的equals()并不能满足需求，
        因此常常需要重写equals();

        */

        Point p1 = new Point(100,200);
        Point p2 = new Point(100,200);
        System.out.println(p1 == p2);//f
        System.out.println(p1.equals(p2));//t



        StringBuilder builder1 = new StringBuilder("hello");
        StringBuilder builder2 = new StringBuilder("hello");
        //StringBuilder类没有重写equals()，因此调用的还是Object类的equals()比较地址
        System.out.println(builder1.equals(builder2));//f

        String s1 = "hello";
        //s1和builder1的类型不同，所以equals()一定是false
        System.out.println(s1.equals(builder1));//f






























        /*
        * 输出引用变量时，默认调用Object类中的toString（）方法
        * 该方法返回的字符串格式为：类的全程@hashcode值
        * 但通常这个返回结果对我们开发是没有意义的
        * 我们认为Object类的toString（）并不能满足需求
        * 因此我们常常重写toString（）来返回具体的属性值
        * */

      /*
        Point p = new Point(100,200);
        System.out.println(p);//  相当于 System.out.println(p.toString());
        System.out.println(p.toString());
        */


    }
}
